<?php
require_once 'config.php';

/**
 * 调用API接口
 * @param string $url 接口地址
 * @param array $params 请求参数
 * @return array 接口返回数据（数组格式）
 */
function api_request($url, $params = []) {
    // 拼接GET参数
    if (!empty($params)) {
        $url .= '?' . http_build_query($params);
    }
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 超时时间10秒
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 忽略SSL验证（生产环境建议开启）
    $response = curl_exec($ch);
    $error = curl_error($ch);
    curl_close($ch);
    
    // 错误处理
    if ($error) {
        error_log("API请求错误: $error");
        return ['status' => false, 'msg' => '数据获取失败'];
    }
    
    $data = json_decode($response, true);
    return $data ?: ['status' => false, 'msg' => '数据解析失败'];
}

// 增加健康文章分类获取函数
function get_article_categories() {
    $cache_file = 'cache/article_categories.json';
    // 检查缓存
    if (file_exists($cache_file) && time() - filemtime($cache_file) < 3600) {
        return json_decode(file_get_contents($cache_file), true);
    }
    // 调用接口
    $params = [
        'app_id' => 10001
    ];
    $data = api_request(API_ARTICLE_CATEGORIES, $params);
    // 保存缓存
    if (!file_exists('cache')) mkdir('cache', 0777, true);
    file_put_contents($cache_file, json_encode($data));
    return $data;
}

// 扩展URL生成函数
function build_url($type, $params = []) {
    $base = SITE_DOMAIN . '/';
    switch ($type) {
        case 'product_list':
            $category = isset($params['category']) ? $params['category'] : '';
            $page = isset($params['page']) ? $params['page'] : 1;
            return $base . "product_list.php?category=$category&page=$page";
        case 'detail':
            $id = isset($params['id']) ? $params['id'] : '';
            return $base . "product_detail.php?id=$id";
        case 'article_list':
            $category = isset($params['category']) ? $params['category'] : '';
            $tag = isset($params['tag']) ? $params['tag'] : '';
            $page = isset($params['page']) ? $params['page'] : 1;
            $url = $base . "article_list.php?page=$page";
            if ($category) $url .= "&category=$category";
            if ($tag) $url .= "&tag=$tag";
            return $url;
        case 'article_detail':
            $id = isset($params['id']) ? $params['id'] : '';
            return $base . "article_detail.php?id=$id";
        default:
            return $base;
    }
}

/**
 * 格式化价格
 * @param float $price 价格
 * @return string 格式化后的价格（如：¥99.00）
 */
function format_price($price) {
    return '¥' . number_format($price, 2, '.', '');
}

/**
 * 获取分类列表（缓存1小时）
 * @return array 分类数据
 */
function get_categories() {
    $cache_file = 'cache/categories.json';
    // 检查缓存
    if (file_exists($cache_file) && time() - filemtime($cache_file) < 3600) {
        return json_decode(file_get_contents($cache_file), true);
    }
    // 调用接口
	$params = [
		'app_id' => 10001
	];
    $data = api_request(API_CATEGORIES, $params);
    // 保存缓存
    if (!file_exists('cache')) mkdir('cache', 0777, true);
    file_put_contents($cache_file, json_encode($data));
    return $data;
}

